package com.gragra.dependencyParsing;
/**
 * 
 */
import com.gragra.sampling.nonproj.MostFrequentFactory;
import com.gragra.sampling.nonproj.generators.CreateDependencyCorpus;
import com.gragra.sampling.nonproj.generators.projective.singleroot.CreateGibbsMHSingleRootProjective;
import com.gragra.sampling.nonproj.generators.projective.singleroot.CreateGreedySingleRootProjective;
import com.gragra.sampling.nonproj.generators.projective.singleroot.CreateMHMHSingleRootProjective;
/**
 * 
 * @author Christoph Teichmann
 * 23.09.2013
 */
public enum ProjectiveSingleRootDependencyType implements DependencyStructureAccess
{
	MHMH {
		@Override
		public CreateDependencyCorpus makeBaseCreator()
		{return new CreateMHMHSingleRootProjective(makeConverter());}
	},
	GibbsProjective{

		@Override
		public CreateDependencyCorpus makeBaseCreator()
		{return new CreateGibbsMHSingleRootProjective(this.makeConverter());}
	},
	GreedyProjective{
		@Override
		public CreateDependencyCorpus makeBaseCreator()
		{return new CreateGreedySingleRootProjective(this.makeConverter());}
	};
	/**
	 * @return
	 */
	protected MostFrequentFactory makeConverter()
	{return new MostFrequentFactory();}
}